Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Com'è tipico di quelli che fan le cose per il gusto di farle, ho messo in piedi un'altra cosa lasciando da parte quella che stavo facendo. In particolare, sto tentando di fare un programmino che riceva in ingresso un percorso di quelli caratteristici del formato SVG ("d="M10,10 l100,100, h-50", per intendersi) e lo traduca automaticamente in codice C++ per GDI+ bell'e pronto.
Al momento, il mio programmino genera correttamente il file di intestazione e il file di implementazione per tutti i comandi specificati nella documentazione di SVG sulla quale son riuscito a mettere le mani, tranne il comando 'a' e quello 'A' (non è male, perché ho già implementato la sfilza dei comandi Mm, Zz, Ll, Hh, Vv, Cc, Ss, Qq e Tt, che per me non è poco).
Il problema è che passare dalla parametrizzazione basata su "endpoint" di SVG a quella basata su rettangoli di GDI+ pare essere oltre le mie possibilità, non tanto per il codice in sè, quanto per le basi di geometria/trigonometria che sarebbe necessario padroneggiare ad un livello che non mi appartiene.
In effetti, la documentazione riporta delle formule per la conversione, ma non indica come tradurle in codice. Siccome quelle formule impiegano un tipo di notazione che non conosco e che sembra io non sia in grado di comprendere, sono bloccato. Lunghissime ricerche sul web si sono rivelate infruttuose (anche se sto cercando di convertire esempi che ho trovato in python e in java, ma si tratta di linguaggi diversi dal C, che non conosco e che a tratti mi confondono).
Qualcuno qui sarebbe tanto gentile da aiutarmi a trovare una via d'uscita?
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
P.S. Una curiosità ... perché questo thread non lo apri su iprogrammatori ?
Ultima modifica effettuata da nessuno il 22/10/2017 alle 13:26
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
P.S. Una curiosità ... perché questo thread non lo apri su iprogrammatori ?
Avevo parlato brevemente con AldoBaldo di questa cosa in chat e l'ho invitato a esporsi
Aldo, come dice nessuno potresti indirizzarci alla sezione precisa della documentazione?
Inoltre per chiarire, il problema della traduzione ce l'hai per tutti i comandi giusto?
Ultima modifica effettuata da lumo il 22/10/2017 alle 14:34
Gli altri comandi li ho già implementati tutti di testa mia, e funzionano (lo so, è incredibile e sembra impossibile, però è così). Sicuramente il mio codice sarà molto "naif", ma se uno si accontenta...
Se riuscirò a finire e rifinire il programmino, pur con tutti i difetti che non riuscirò a eliminare perché fanno parte del mio stile da autodidatta della domenica, lo condividerò qui.
@nessuno
Perché questa community qui è molto più accogliente e di larghe vedute. Di là ci vado volentieri perché c'è più movimento (più post sul forum) e dunque posso divertirmi un po', però è anche vero che circola un po' di spocchia da parte di alcuni. Che dovremmo dire? Del resto, ognuno ha la sua testa (e va bene così).
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
Perché questa community qui è molto più accogliente e di larghe vedute. Di là ci vado volentieri perché c'è più movimento (più post sul forum) e dunque posso divertirmi un po', però è anche vero che circola un po' di spocchia da parte di alcuni. Che dovremmo dire? Del resto, ognuno ha la sua testa (e va bene così).
Beh, qui l'età (e la preparazione) media è sicuramente molto inferiore, quindi è comprensibile che la cosa si rifletta sul grado di "accoglienza percepita", non so se mi sono spiegato. Per essere più precisi, qui si possono scrivere più "fesserie" rispetto all'altro posto ...
Dato che ritenevo l'argomento più consono all'altro forum, mi chiedevo quale criterio usassi nello scegliere qui o lì quando posti una domanda ... anche se vedo che lì, più che altro, rispondi e qui chiedi ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Ipotizzo che chiedendo di là più che risposte otterrei altre domande. Il che in certe situazioni va bene, in altre no. In questa sicuramente no, perché il tipo di problema non è di quelli che sono in grado di risolvere da me.
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
Ipotizzo che chiedendo di là più che risposte otterrei altre domande. Il che in certe situazioni va bene, in altre no. In questa sicuramente no, perché il tipo di problema non è di quelli che sono in grado di risolvere da me.
Non ho capito per nulla il tuo ragionamento, comunque venendo al problema:
Invece di fare una descrizione molto lunga, ti ho fatto un paio di disegni e ti ho scritto le formule dei valori che ti servono. In fondo trovi una legenda delle operazioni matematiche con vettori e matrici 2x2 che si vedono anche al link che hai fornito, così se sei curioso puoi guardarle.
aaaaAAAAAARRRRRRGGGGGHHHhhhhhhfff... (accasciandosi al suolo in punto di morte)
Va be', dopo cena mi ci metto e vedo se riesco a capirci qualcosa. Così di getto mi manca un po' l'aria...
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
aaaaAAAAAARRRRRRGGGGGHHHhhhhhhfff... (accasciandosi al suolo in punto di morte)
Va be', dopo cena mi ci metto e vedo se riesco a capirci qualcosa. Così di getto mi manca un po' l'aria...
È intenzionale la strada facile è guardare i disegni e copiare i risultati delle formule. I tre passi sarebbero ciò che devi effettivamente fare con il codice, cioè creare un arco inizialmente appartenente all'ellisse centrato nell'origine, poi questo ellisse viene ruotato di un angolo phi. Queste cose le fai molto facilmente con GDI.
Il terzo passo ti porta l'arco dove vuoi tu, e serve una traslazione (sempre GDI), e le componenti per cui devi traslare sono calcolate lì. In più, siccome vuoi sapere da quale punto deve partire il prossimo oggetto (penso ti serva?) servono le coordinate anche di quello, ed è calcolato.
I passaggi sono utili per controllare di non aver sbagliato, ma puoi saltarli